Julia 参数方法
阐述
在方法定义中加入类型变量,使得函数的签名类型变为 Julia UnionAll 类型。这样的变量可以用来联系两个不同的变量或作为返回值。变量可以设定上界。
实例
julia> same_type(x::T, y::T) where {T} = true
same_type (generic function with 1 method)
julia> mytypeof(x::T) where {T} = T
mytypeof (generic function with 1 method)
julia> same_type_numeric(x::T, y::T) where {T<:Number} = true
same_type_numeric (generic function with 1 method)
设计模式
提取类型参数
abstract type AbstractArray{T, N} end
eltype(::Type{<:AbstractArray{T}}) where {T} = T
替换类型参数
input = convert(AbstractArray{Eltype}, input)
output = similar(input, Eltype)